import os, sys

pwd = os.path.dirname(os.path.realpath(__file__))
sys.path.append(pwd + '../')
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'riscv_build_dataset.settings')

import django

django.setup()

from django.db.models import Count
from obs.models import obs_job_history, obs_package
from tqdm import tqdm

duplicates = (
    obs_job_history.objects.values('package', 'project', 'build_time')  # 只关注这两个字段
    .annotate(name_count=Count('package'))  # 计算每个名字的数量
    .filter(name_count__gt=1)  # 只保留数量大于1的结果
)

for duplicate in tqdm(duplicates):
    # 我们找到这个名字的所有条目
    entries = obs_job_history.objects.filter(
        project=duplicate['project'],
        package=duplicate['package'],
        build_time=duplicate['build_time']
    )
    # 我们保留第一个，删除其余的
    entries.exclude(id=entries.first().id).delete()

duplicates = (
    obs_package.objects.values('project', 'package_name')  # 只关注这两个字段
    .annotate(name_count=Count('package_name'))  # 计算每个名字的数量
    .filter(name_count__gt=1)  # 只保留数量大于1的结果
)

for duplicate in tqdm(duplicates):
    # 我们找到这个名字的所有条目
    entries = obs_package.objects.filter(
        project=duplicate['project'],
        package_name=duplicate['package_name'],
    )
    # 我们保留第一个，删除其余的
    entries.exclude(id=entries.first().id).delete()